package com.itheima.d4_create_thread;

/**
 * 目标：掌握多线程的创建方式二：实现Runnable接口。
 *
 * 可以实现Runnable的同时继承其他类。比单纯创建Thread类更灵活。
 *
 * public Thread()
 * public Thread(Runnable task)
 */
public class ThreadTest2 {
    public static void main(String[] args) {
        //3、创建线程对象，并传入Runnable子类对象
        Thread t1 = new Thread(new MyRunnable("小红"));

        //4、调用线程的start方法，开启线程
        t1.start();

        //多创建几个线程
        new Thread(new MyRunnable("小绿")).start();
        new Thread(new MyRunnable("小美")).start();
        new Thread(new MyRunnable("小帅")).start();

        //Lambda方式
//        new Thread(() -> System.out.println("我是Lambda方式实现～～")).start();
        Thread t2 = new Thread(() -> System.out.println("我是Lambda方式实现～～"));
        t2.start();

        //匿名内部类方式
        Thread t3 = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("我是匿名内部类方式～～");
            }
        });
        t3.start();
    }
}

//1、创建一个类，实现Runnable接口   （该类不是线程）
class MyRunnable implements Runnable {
    String name;

    public MyRunnable(String name) {
        this.name = name;
    }

    //2、实现接口中的run方法
    @Override
    public void run() {
        //要线程干的活，这里定义
        for (int i = 0; i < 100; i++) {
            System.out.println(name + "：" + i);
        }
    }
}